// 设置请求的基准路径
axios.defaults.baseURL = 'https://www.sheli.net.cn:3009/'
let map = new Map()
map.set('get', get)
map.set('post', post)
map.set('delete', del)
map.set('put', put)

// 对请求的拦截
axios.interceptors.request.use((request) => {
  request.headers['token'] = getToken()
  console.log(request)
  return request
})
// 对响应的拦截
axios.interceptors.response.use((response) => {
  console.log(response)
  return response
})

// 封装请求的函数
function request(options) {
  console.log(options)
  let type = options.type // post,get,delete,put
  let fn = map.get(type)
  if (!fn) {
    return new Promise((v) => {
      v('没有你要调用的方法')
    })
  }
  let res = fn(options)
  return res
}

// get请求
function get(options) {
  return axios.get(options.url, { params: options.data })
}
// delete请求
function del(options) {
  return axios.delete(options.url, { params: options.data })
}
// post请求
function post(options) {
  return axios.post(options.url, options.data)
}
// put请求
function put(options) {
  return axios.put(options.url, options.data)
}
// 获得保存在sessionStorage中的token
function getToken() {
  let str = sessionStorage.getItem('user-login')
  if (!str) {
    return null
  }
  let object = JSON.parse(str)
  return object.token
}
